package tests;
import com.thoughtworks.selenium.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.util.regex.Pattern;
public class TestCases extends SeleneseTestBase {
	@Before
	public void setUp() throws Exception {
		// setUp("http://www.google.com/",
		// "*C:\\Program Files (x86)\\Internet Explorer\\iexplore.exe");
		selenium = new DefaultSelenium(
				"localhost",
				4444,
				"*firefox C:\\Program Files (x86)\\Apps\\Mozilla Firefox\\firefox.exe",
				"http://localhost:8080/");
		selenium.start();
	}
	
	@Test
	public void inschrijvenOpdrachtTest() throws Exception {
		selenium.open("/HU-IE-TO1/index.jsp");
		selenium.type("name=email", "kevin@hu.nl");
		selenium.type("name=wachtwoord", "123");
		selenium.click("id=loginbtn");
		selenium.waitForPageToLoad("30000");
		selenium.click("link=Inschrijven");
		selenium.waitForPageToLoad("30000");
		selenium.addSelection("name=onderzoek", "label=test3, test");
		selenium.click("css=button.btn");
		selenium.waitForPageToLoad("30000");
		verifyTrue(selenium.isTextPresent("Succesvol ingeschreven"));
	}
	
	@Test
	public void inschrijvenOpdrachtTestIncorrect() throws Exception {
		selenium.open("/HU-IE-TO1/index.jsp");
		selenium.type("name=email", "kevin@hu.nl");
		selenium.type("name=wachtwoord", "123");
		selenium.click("id=loginbtn");
		selenium.waitForPageToLoad("30000");
		selenium.click("link=Inschrijven");
		selenium.waitForPageToLoad("30000");
		selenium.addSelection("name=onderzoek", "label=test, test onderzoek");
		selenium.click("css=button.btn");
		selenium.waitForPageToLoad("30000");
		verifyTrue(selenium.isTextPresent("U bent al ingeschreven"));
	}
	
	@Test
	public void studentAanGroepToevoegenTest() throws Exception {
		selenium.open("/HU-IE-TO1/index.jsp");
		selenium.type("name=email", "kevin@hu.nl");
		selenium.type("name=wachtwoord", "123");
		selenium.click("id=loginbtn");
		selenium.waitForPageToLoad("30000");
		selenium.click("link=Uitnodigen");
		selenium.waitForPageToLoad("30000");
		selenium.addSelection("name=student", "label=a2 a2 SE");
		selenium.click("css=button.btn");
		selenium.waitForPageToLoad("30000");
		verifyTrue(selenium.isTextPresent("Verzoek verzonden"));

	}
	
	@Test
	public void studentAanGroepToevoegenTestIncorrect() throws Exception {
		selenium.open("/HU-IE-TO1/index.jsp");
		selenium.type("name=email", "kevin@hu.nl");
		selenium.type("name=wachtwoord", "123");
		selenium.click("id=loginbtn");
		selenium.waitForPageToLoad("30000");
		selenium.click("link=Uitnodigen");
		selenium.waitForPageToLoad("30000");
		selenium.addSelection("name=student", "label=a1 a1 SE");
		selenium.addSelection("name=student", "label=a2 a2 SE");
		selenium.addSelection("name=student", "label=a3 a3 SE");
		selenium.addSelection("name=student", "label=a4 a4 SE");
		selenium.click("css=button.btn");
		selenium.waitForPageToLoad("30000");
		verifyTrue(selenium.isTextPresent("Uw groep is vol"));

	}
	
	@Test
	public void begeleiderAanGroepToewijzenTest() throws Exception {
		selenium.open("/HU-IE-TO1/index.jsp");
		selenium.type("name=email", "coordinator@hu.nl");
		selenium.type("name=wachtwoord", "123");
		selenium.click("id=loginbtn");
		selenium.waitForPageToLoad("30000");
		selenium.click("link=Toewijzen");
		selenium.waitForPageToLoad("30000");
		selenium.click("css=button.btn");
		selenium.waitForPageToLoad("30000");
		verifyTrue(selenium.isTextPresent("Begeleider toegewezen"));
	}
	
	@Test
	public void begeleiderAanGroepToewijzenTestIncorrect() throws Exception {
		selenium.open("/HU-IE-TO1/index.jsp");
		selenium.type("name=email", "coordinator@hu.nl");
		selenium.type("name=wachtwoord", "123");
		selenium.click("id=loginbtn");
		selenium.waitForPageToLoad("30000");
		selenium.click("link=Toewijzen");
		selenium.waitForPageToLoad("30000");
		selenium.click("css=button.btn");
		selenium.waitForPageToLoad("30000");
		verifyTrue(selenium.isTextPresent("Geen velden ingevuld"));
	}
	
	@Test
	public void groepsVerzoekBeantwoordenTest() throws Exception {
		selenium.open("/HU-IE-TO1/index.jsp");
		selenium.type("name=email", "a1");
		selenium.type("name=wachtwoord", "a1");
		selenium.click("id=loginbtn");
		selenium.waitForPageToLoad("30000");
		selenium.click("link=Verzoeken");
		selenium.waitForPageToLoad("30000");
		selenium.click("name=bevestig");
		selenium.waitForPageToLoad("30000");
		verifyTrue(selenium.isTextPresent("Verzoek om deel te nemen aan de groep bevestigd"));
	}
	
	public void groepsVerzoekBeantwoordenTestIncorrect() throws Exception {
		selenium.open("/HU-IE-TO1/index.jsp");
		selenium.type("name=email", "a2");
		selenium.type("name=wachtwoord", "a2");
		selenium.click("id=loginbtn");
		selenium.waitForPageToLoad("30000");
		selenium.click("link=Verzoeken");
		selenium.waitForPageToLoad("30000");
		selenium.click("name=weiger");
		selenium.waitForPageToLoad("30000");
		verifyTrue(selenium.isTextPresent("Verzoek om deel te nemen aan de groep geweigerd"));
	}
	
	@Test
	public void opdrachtToevoegenTest() throws Exception {
		selenium.open("/HU-IE-TO1/index.jsp");
		selenium.type("name=email", "coordinator@hu.nl");
		selenium.type("name=wachtwoord", "123");
		selenium.click("id=loginbtn");
		selenium.waitForPageToLoad("30000");
		selenium.click("xpath=(//a[contains(text(),'Toevoegen')])[3]");
		selenium.waitForPageToLoad("30000");
		selenium.type("name=onderwerp", "new o");
		selenium.type("name=omschrijving", "o");
		selenium.click("css=button.btn");
		selenium.waitForPageToLoad("30000");
		verifyTrue(selenium.isTextPresent("Onderzoek toegevoegd"));
	}
	
	@Test
	public void opdrachtToevoegenTestIncorrect() throws Exception {
		selenium.open("/HU-IE-TO1/index.jsp");
		selenium.type("name=email", "coordinator@hu.nl");
		selenium.type("name=wachtwoord", "123");
		selenium.click("id=loginbtn");
		selenium.waitForPageToLoad("30000");
		selenium.click("xpath=(//a[contains(text(),'Toevoegen')])[3]");
		selenium.waitForPageToLoad("30000");
		selenium.type("name=onderwerp", "");
		selenium.type("name=omschrijving", "");
		selenium.click("css=button.btn");
		selenium.waitForPageToLoad("30000");
		verifyTrue(selenium.isTextPresent("Geen velden ingevuld"));
	}
	
	@Test
	public void overzichtOpdrachtenTest() throws Exception {
		selenium.open("/HU-IE-TO1/index.jsp");
		selenium.type("name=email", "coordinator@hu.nl");
		selenium.type("name=wachtwoord", "123");
		selenium.click("id=loginbtn");
		selenium.waitForPageToLoad("30000");
		selenium.click("link=Overzicht groepen");
		selenium.waitForPageToLoad("30000");
		verifyTrue(selenium.isTextPresent("Overzicht van alle groepen"));
	}
	
	public void overzichtStudentenTest() throws Exception {
		selenium.open("/HU-IE-TO1/index.jsp");
		selenium.type("name=email", "coordinator@hu.nl");
		selenium.type("name=wachtwoord", "123");
		selenium.click("id=loginbtn");
		selenium.waitForPageToLoad("30000");
		selenium.click("link=Overzicht studenten");
		selenium.waitForPageToLoad("30000");
		verifyTrue(selenium.isTextPresent("Studenten"));

	}
	
	@After
	public void tearDown() throws Exception {
		selenium.stop();
	}
}
